/**
 * request 网络请求工具
 * 更详细的 api 文档: https://github.com/umijs/umi-request
 */
import message from 'antd/lib/message';
import { extend } from 'umi-request';
import { history } from 'umi';
import { stringify } from 'querystring';



console.log(process.env.NODE_ENV);
/**
 * 配置request请求时的默认参数
 */
const request = extend({
    credentials: 'include', // 默认请求是否带上cookie
    // 是否为线上环境 如果是指定为自定义域名
    prefix: process.env.NODE_ENV === 'production' ? 'http://101.35.50.21:8081' : 'http://localhost:8080',
    // requestType: 'form',
});

/**
 * 所以请求拦截器
 */
request.interceptors.request.use((url, options): any => {
    console.log(`do request url${url}`)

    return {
        url,
        options: {
            ...options,
            headers: {

            },
        },
    };
});

/**
 * 所有响应拦截器
 */
request.interceptors.response.use(async (response): Promise<any> => {
    const res = await response.clone().json();
    if (res.code === 200) {
        return res.data;
    } else if (location.pathname !== '/user/register' && res.code === 40100) {
        message.error(res.message);
        // 如果没有登录，重定向到 login
        history.replace({
            pathname: '/user/login',
            search: stringify({
                redirect: location.pathname,
            })
        })
    } else if (location.pathname === '/user/register' && res.code === 40100) {

    } else {
        message.error(res.description);
    }
});

export default request;
